<?php
/**
 * Created by PhpStorm.
 * User: zhangchao
 * Date: 15/6/5
 * Time: 15:25
 */

namespace common\core;


use yii\filters\AccessControl;
use yii\helpers\Url;
use yii\web\ConflictHttpException;
use yii\web\Controller;

class ZController extends Controller{

//    public function behaviors()
//    {

//        return [
//            'access' => [
//                'class' => AccessControl::className(),
//                'only' => ['checkLogin'],
//                'rules' => [
//                    [
//                        'actions' => ['checkLogin'],
//                        'allow' => true,
//                        'roles' => ['?'],
//                        'matchCallback' => function(){
//                            return \Yii::$app->user->isGuest;
//                        },
//                    ]
//                ],
//            ],
//
//            'logined' => AccessControl::className(),
//            'rules' => [
//                [
//                    'actions' =>
//                ]
//            ],
//        ];
//    }


    public function beforeAction($action)
    {
        if(\Yii::$app->user->isGuest){

            return $this->redirect('/site/login');
        }

//        $token = \Yii::$app->user->generalUserToken();
//        $cacheUserToken = \Yii::$app->cache->get(\Yii::$app->user->getUserTokenKey());
//
//
//        //如果token的不一致，就退出登录
//        if($token != $cacheUserToken){
//            \Yii::error("user_id 为".\Yii::$app->user->id."的用户 user_token 不一致。token:".$token."  ||  cacheToken:".$cacheUserToken);
//            \Yii::$app->user->logout();
//            return $this->redirect(Url::to('/site/login'));
////            return $this->goHome();
//        }


        $actionId = $action->getUniqueId();

        $actionId = '/'.$actionId;
        if(!\Yii::$app->user->can($actionId)){
            return false;
        }

        return true;

    }
}